import requests
import time
import webbrowser
import os

def check_frontend():
    """检查前端是否正常运行"""
    try:
        response = requests.get('http://localhost:5173', timeout=5)
        if response.status_code == 200:
            print("✓ 前端服务正常运行在 http://localhost:5173")
            return True
    except:
        pass
    
    print("✗ 前端服务未运行")
    return False

def check_backend():
    """检查后端是否正常运行"""
    try:
        response = requests.get('http://localhost:8080/api/tasks', timeout=5)
        if response.status_code == 200:
            print("✓ 后端服务正常运行在 http://localhost:8080")
            return True
    except:
        pass
    
    print("✗ 后端服务未运行")
    return False

def open_test_page():
    """打开测试页面"""
    test_file = os.path.abspath('tests/test_ui_functions.html')
    if os.path.exists(test_file):
        webbrowser.open(f'file://{test_file}')
        print(f"✓ 已打开测试页面: {test_file}")
    else:
        print("✗ 测试页面文件不存在")

def main():
    print("=== Queue Admin UI 功能验证 ===\n")
    
    # 检查服务状态
    frontend_ok = check_frontend()
    backend_ok = check_backend()
    
    if not frontend_ok or not backend_ok:
        print("\n请确保前端和后端服务都在运行")
        return
    
    print("\n=== 修复内容总结 ===")
    print("1. ✓ 主题切换功能")
    print("   - 修复了App.vue和LayoutShell.vue之间的状态同步")
    print("   - 使用props和emit正确传递主题状态")
    print("   - 右上角的Dark/Light开关现在可以正常工作")
    
    print("\n2. ✓ 侧边栏折叠功能")
    print("   - 修复了折叠按钮的事件绑定")
    print("   - 添加了侧边栏的collapse/expand事件处理")
    print("   - 顶部菜单按钮和侧边栏折叠按钮都可以正常工作")
    
    print("\n3. ✓ 任务按钮状态同步")
    print("   - 优化了启动/停止操作后的状态刷新")
    print("   - 添加了延迟刷新机制确保状态同步")
    print("   - 按钮状态现在会根据任务状态正确更新")
    
    print("\n4. ✓ 运行参数生效")
    print("   - Kafka消费者/生产者重试配置")
    print("   - RabbitMQ并发度和重试配置")
    print("   - 并发度、重试次数、退避时间现在都会真正生效")
    
    print("\n=== 手动测试指南 ===")
    print("请在浏览器中进行以下测试:")
    print("1. 访问 http://localhost:5173")
    print("2. 测试右上角主题切换开关")
    print("3. 测试左侧边栏折叠按钮")
    print("4. 测试顶部菜单按钮")
    print("5. 测试任务的启动/停止按钮状态")
    print("6. 测试新建任务时的运行参数设置")
    
    # 打开测试页面
    print("\n正在打开详细测试指南...")
    open_test_page()
    
    print("\n如果所有功能都正常工作，说明UI修复成功！")

if __name__ == "__main__":
    main()
